package com.locatme.model;

import java.util.List;

import android.os.Parcel;
import android.os.Parcelable;

import com.google.android.gms.maps.model.LatLng;


public class Personne extends Utilisateur implements Parcelable  {

    private String pseudo;

    private List<Personne> mesPersFavorites;
    private List<Enseigne> mesEnseigneFavorites;


    public Personne(){}

    public Personne(String login, String pwd) {
        super(login, pwd);
    }

    @Override
    public int describeContents() {

        return 0;
    }


    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(getLogin());
        dest.writeString(getPwd());


    }

    public static final Parcelable.Creator<Personne> CREATOR = new Parcelable.Creator<Personne>() {
        @Override
        public Personne createFromParcel(Parcel source) {
            return new Personne(source);
        }

        @Override
        public Personne[] newArray(int size) {
            return new Personne[size];
        }
    };

    public Personne(Parcel in) {
        this.setLogin(in.readString());
        this.setPwd(in.readString());

    }

    public Personne(String pseudo, String login, String pwd) {
        super(login, pwd);
        this.pseudo = pseudo;
    }

    public Personne(String login, String pwd, List<Langue> langues,
                    LatLng loca, String pseudo) {
        super(login, pwd, langues, loca);
        this.pseudo = pseudo;
    }

    @Override
    public void majProfil(Localisation loc, String txtStatut) {
        // To change body of implemented methods use File | Settings | File
        // Templates.

    }

    /**
     * Ajoute une langue  la liste des langues de l'utilisateur.
     *
     * @param pers
     *            La Personne  ajouter.
     * @return vrai(true) si la Personne  bien t ajoute, faux sinon
     */
    public boolean ajouterPersFavori(Personne pers) {

        return this.mesPersFavorites.add(pers);

    }

    /**
     * Ajoute une langue  la liste des langues de l'utilisateur.
     *
     * @param pers
     *            La personne  supprimer.
     * @return vrai(true) si la Personne  bien t supprime, faux sinon
     */
    public boolean suprPersFavori(Personne pers) {

        return this.mesPersFavorites.remove(pers);

    }

    /**
     * Ajoute une langue  la liste des langues de l'utilisateur.
     *
     * @param enseigne
     *            L'enseigne  ajouter.
     * @return vrai(true) si la Enseigne  bien t ajoute, faux sinon
     */
    public boolean ajouterEnseigneFavori(Enseigne enseigne) {

        return this.mesEnseigneFavorites.add(enseigne);

    }

    /**
     * Ajoute une langue  la liste des langues de l'utilisateur.
     *
     * @param enseigne
     *            L'enseigne  supprimer.
     * @return vrai(true) si la Enseigne  bien t ajoute, faux sinon
     */
    public boolean suprEnseigneFavori(Enseigne enseigne) {

        return this.mesEnseigneFavorites.remove(enseigne);

    }

    public List<Personne> getMesPersFavorites() {
        return mesPersFavorites;
    }

    public List<Enseigne> getMesEnseigneFavorites() {
        return mesEnseigneFavorites;
    }

    public String getPseudo() {
        return pseudo;
    }

    public void setPseudo(String pseudo) {
        this.pseudo = pseudo;
    }

    public void setMesPersFavorites(List<Personne> mesPersFavorites) {
        this.mesPersFavorites = mesPersFavorites;
    }

    public void setMesEnseigneFavorites(List<Enseigne> mesEnseigneFavorites) {
        this.mesEnseigneFavorites = mesEnseigneFavorites;
    }

}
